package IO;

import javax.jws.soap.SOAPBinding;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.nio.file.DirectoryIteratorException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

public class FileAndIO {
    public static void main(String[] args) {

        File f1 = new File("D:/test/axDemo.txt");
        if(!f1.exists()){//判断文件是否存在
            try {
                f1.createNewFile();
                System.out.println("文件创建成功");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        //f1.isFile();
        String p = null ;
        //判断是否为文件夹
        if(f1.isDirectory()==false){ p = "不是";}else{ p = "是";}
        System.out.println("创建的文件"+p+"文件夹");
         File f2 = new File("D:/test/my/");
         boolean a = f2.delete();//删除文件夹得先把文件删掉
        System.out.println(a);
        String[] name = f2.list();
        System.out.println(Arrays.toString(name));
       File[] fs =  f2.listFiles(); //列出当前目录下的所有文件，以File对象方式返回
        for(File f:fs) {
         System.out.println("length=" + f.length());
         System.out.println("name=" + f.getName());
         //如果文件在java工程下与src一起，则直接输出文件名：axDemo.txt ---相对路径
         System.out.println("相对路径=" + f.getPath());
         //如果文件在java工程下与src一起，则还是要输出完整路径：包括盘符文件夹以及文件名
         System.out.println("绝对路径=" + f.getAbsolutePath());
         System.out.println("是否是隐藏文件=" + f.isHidden());
         System.out.println("是否是可读文件=" + f.canRead());
         Date date = new Date(f.lastModified());
         DateFormat df = new SimpleDateFormat("YYYY:MM:dd HH:mm:ss SSS");
         System.out.println("文件最后的修改时间=" + df.format(date));
         System.out.println("-------------------------------------");
     }
         File f3 = new File("tst.txt");
         System.out.println("相对路径="+f3.getPath());
         System.out.println("绝对路径="+f3.getAbsolutePath());

         File f4 = new File("D:/test/my/dabin");
         f4.mkdirs();// .mkdir();可以帮助创建dabin文件夹
         f4.renameTo(new File("D:/test/my/dabin2"));//可以在本符盘移动文件也可以重命名文件
         f4.delete();


         File f5 = new File("D:/test/my");
  /*     File[] files =  f5.listFiles(new FileFilter() {
             @Override
             public boolean accept(File pathname) {
               return   pathname.getName().endsWith(".txt");
             }
         });
      */
     File[] files = f5.listFiles((pathname)->pathname.getName().endsWith(".txt"));
         for(File ff:files){
             System.out.println(ff.getName());
         }

    }
}
